<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="theme-color" content="#3367D6"/>
  <link rel="apple-touch-icon" href="/icons-192.png">
  <link rel="manifest" href="/manifest.json">
  
  <meta name="generator" content="Hexo 6.3.0">

  

  

  
    <meta name="author" content="QAQ">
  

  

  

  <title>SQL解析工具 | QAQ</title>

  

  
    <link rel="shortcut icon" href="/blog/favicon.ico">
  

  <!--mathjax latex数学公式显示支持-->
  
  

  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@1.1.13/index.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/monokai.min.css">
  

  

  
<link rel="stylesheet" href="/blog/css/style.css">

</head>
<body>
  <div class="root-container">
    
<!-- header container -->
<header class="header-container post">
  
    <div class="post-image" style="background-image: url(https://qiniu.sukoshi.xyz/src/images/68686407_p0.jpg)"></div>
  

  <!-- navbar -->
<nav class="navbar">
  <div class="navbar-content">
    <!-- logo -->
    <div class="navbar-logo">
      <a href="/blog/">
        
          QAQ
        
      </a>
    </div>
    <!-- link -->
    <div class="navbar-link">
      <div class="navbar-btn">
        <div></div>
        <div></div>
        <div></div>
      </div>
      <ul class="navbar-list">
        
      </ul>
    </div>
  </div>
</nav>

  
  

  
  

  
  

  
  

  
  
    <div class="header-content">
      <div class="post-text layout-block">
        <div class="layout-margin">
          <h1 class="title-wrap">SQL解析工具</h1>
          <h2 class="title-sub-wrap">
            <strong>QAQ</strong>
            <span>发布于</span>
            <time  class="article-date" datetime="2024-03-29T09:37:22.000Z" itemprop="datePublished">2024-03-29</time>
          </h2>
          
            <h2 class="last-time">
              <span>最后更新于</span>
              <time  class="article-updated" datetime="2024-04-09T01:06:51.808Z" itemprop="dateUpdated">2024-04-09</time>
            </h2>
          
          
          <ul class="wrap-list dark">
  
</ul>
          <ul class="wrap-list dark">
  
    <li><a href="/blog/tags/java/">🏷️ java</a></li>
  
</ul>
        </div>
      </div>
    </div>
  

  
  
  
</header>

    <!-- 文章 -->

<!-- 文章内容 -->
<div class="body-container">
  <article class="content-container layout-block post-container">
    <div class="article-info">
      
      
      
      
      <section class="article-entry markdown-body layout-margin content-padding--large soft-size--large soft-style--box">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉，这个密码看着不太对，请再试试。" data-whm="抱歉，这个文章不能被纠正，不过您还是能看看解密后的内容。">
  <script id="hbeData" type="hbeData" data-hmacdigest="b066ff7e108091592f9ce17339d614356a933c261a01f684839c75cf340db599">f5d7027a76d40f8b4fe5a79716a716fbecb20eb8f4d5001876237e810c3efb1e3f28d810104dbeaa3b856df6b87ef52208d3044734288fcbfcd56312783da17a66994c527ccd92244ddcacc04697bb19a3a3146c9a56960a3eb89b0dc73f70c3f3c2fe0af3d626a72f8567c0ba7f5aa4a95cd5d5313b31b796e542e6c479f39ad93ec581d8ded7aa1047527b9dd2b8a62e3ac75c8e0cda3d05d82c91731bf2cc46dd9cd402066883e1ad4f6fc44989e791af42b84636066cb910495d508f34b2049f1ab36c87ef6244ac1a5d37fbdd375b570d09a8e564eef5a685dff69f2cb5f2587002dc48ce9f7cbbd9192fcfa9c5cb3c4e4b45ab7ea4d51002f318ba722803b2d05a5119e72e7a073f096f7bb10edfcd79a7ce1fc24d2eaec778df6c836f6008e1c28b0ab3e6219ede08de77c1d47e3a30d21fbfcde5db284fa7b0c13a6bc86a3a0f70c9edc0d115c94ecf8a37da8f34d225b28ace449814e8a1bb64444259c8e6b572aacd0a5ed35fcc05d4ec64591d5a8c6bdd0801194503cf5be181075180420c2fb6169ecfc365d7738e45cf2cb2393fdc26862fb241db9807c238c8614f1b7db7d957ed3bb1930218ceed7919e3de63a7f911dc24f83eb2b04736edf71c27aeeae53916cc6c42d0a3bdfb74761e2a2204408d2151e1a95139dbbe6f9a2ebe7d1c915e1698ea62679d4d483b2f2b244a453539459a4512ff144070cacbd83f8673c84b5038960bd5d1abcee83146d09c0d430f69c8805913c8cfadd8f80af1d74a298e33f8bae4ccfa1c5cc64e83f9769acb82cb00ddfbd4e6334facfaf96abf7275481c6ddec9911168994793f015a47be603d6162a35e5dc1cef6fb83dd7d65e83ba8963e720316a5eaf923d5ae9c11c7c441498adcee1e7f7cebb36d86d78e620ee34ea7bc2d862f7e47f542d5866ad893774c1940319bf7ed3b29c63ac8318efd9feed3e139757c2c0dd80127ce6dc148481892ac3a5eacabf2e022e7ac6ee21e0eec0c1e0f0f42066d511fad501d3dbd4800ef040736126fa886c8937f86788549ff4954672c2ecc405e1f018877b9cfc48a0f5382b6763e0a57a1732393ef45830968a18e8f940429466b3a1266466755afa8bb9b93daf34a28e24d16517f7c5a9f33b01791e99b3fe0c10b8f40790cfc88a9c0177d0a511b770d5b84099afd396906fc0ed9833364424690b4c75f51e9a9c6f6a34bef08d30e3db8e7e025899558c0ef2a95fb644fd1d2150825453a1db92661036dca298ad9dde3a4d0cf19fa8b6f457121deaac7e566cd6f9287fd03acc935ed471a00438e1af1e15599c33deb05958fc5a3dcef48b3699a83f8deaf98bf34ab36176b747db8af1b8783692c8ca09306d5b22ebb2d3d7cbe1a613d32528f8c8c6337ccfc2a491990422951c47fb94a4952dfcca359c000424f8a05a5799b4417b8d2ace335d62a9de95b51e9f728eb48cf25013db207a6063bfbcb8261cc3140af8e9378367f83bd25ce706ce018cf699d1f9a03abad2bf406b1c564767d2f65246bf9baa0f1699642a5bcb05aa88e0a5711902b19191246675ceba23fa9606f10841aea916c299c50fd0a7f5ae2d31ebe6561b2122934ac90864b9fe13f2169cd4c64f6ae8cc27422a9bb7dc3ce3a60350a5106b12b8a7c263c935fc5936dbd9b498ded193a43a43979c666cba5cf8ebaf9e7bb4002425a51493eef66e811add1064b1c80b94b86ec35830326de8f878c5b8ddcb20b7284b768fe023c6cafe3c8dd09e4024f6670bddc43b111abc6532849afb32006e5f3eb66d124f28e474993339e404706464ae2edbd9b5cc754e5ce9b55dff75851d15a0e6cb7dd6c0710abcd3e21ee28462f2f4bf838b38c104b5bbfd1c979502b0869e4dcf44807040b058a1f28ace3422ff96565dc7d08b32970ee520d60b39551fc08ae341862a81166eb4b9cd3617a89767c534685da0e926f64f015d31f7e7bf499f9e8a6da046d6ce9af9eef25b6e527054a34c821ba98a29c431f4e41216d98352ba37fccee742530b9cb3dce912d0e48f11f28274bf20e99b523b54dabae22490b943adfcd42814f1357b1fc867a38afaa10117f646273ea97cbf3e76af698058ec8c1dd3754b0752e24f1d0d83016bc2f5f6ad7aa2131be7e4c6c8a89f41b9790b33bd5442ec9292a6849afdd3f6451c112431ff65f107e6a65319288513b7a5762a19fb9451b4022313f138032c826889b0a91ef8c88ef974076824032856b1f6f882f12929738c16fcba44408d7ea64b5a18d61d12a944702128db1942b4c09955dd9ce240f6e63d787d3daa7ed5ce3f7418a3d871d92a09979d728346c9e1597796219f515357f6efc3998c27bc7c9dffbd5decfd4a46494b7128b37e2a8c97b76a6a1edb6421b5315efbb3c48b985107f1d1f86db764840113b20ecb034b901b86ecbeb79a5a6a52bb74394dfcdad330da1a61f88ad3981acbb3496492a5eee09d22416a0dbc45551735565c73881b36d52ad5d5320c88d7cb9df2765c8f75a2a8ef154451351bd57d45457a619f7c97c976a1763ec7c57ed22413257c383dae86c0fceb8385b538c5039c47650f5323224abd0b094cd70ff3f8ec0cb0daa928b7909da87c6a365e0444314235bca715830a24517fa1358ac3a8e416e6b2d9fb610e75cd5966c64df016108a8d03fce0b57e19329a2146189e1ae77076a13c3ca2f7c93896b21862a01dcee8c92fc8b4486504704860e3c9014fa05597dfd4feecc538f66f6ba89b2599a50fe0d05f465a7cf2d1fe106bf7f5e6e796d0329d35918e2956301604357bfc30fc22d5c33b81a207f76d0a842cfe94e3eae9a6cbdd65e0e9f67dda6a56cb1ea742e6df01ff92c58fa7077605caf3db4d01f3c07b6f3176f10ea90728b6767d5d4bcaf575d2318c93efb8e5ebb8b80d5520efa3a20398c47f9c85164c92601341dd3aa718ea9df9294383eb78f4b9ab5fc96b87a007eb280fb85404c8ff35f40a1b4f1fedd2138014918ca90f5dd17f7d5cb5ca49b0e68afa3558b2cef9a34cd04af6ba1ea2ac35caa387109d161c91d34829dfbc3526359e6e25ecdfd725e6951197dfbf84b89dc4e065c8b16b3bbc259bf2ca07e2ae5709960640322765a32bec03268c38b2958b8781a6acd4c669dc6625380854add49704573fc396199798817fc16f5f9dda83f0fd03b3d4bacc6d13181775ac4d3977dff7616dc42040c2c7e71bf7c6c432fadcadb925b76c0544711a56380746e5dc00158821ecae0b92e6cae1c33913eaa7e1f15632dcca4a68723fcfd51c1502eb88656897a589a1b1c9849fc8b9ba7d2223428bee4fcc7572b36b3a7152f58aa96096a8e4c2550482e0e7f4e2e06816341dddbc7891e8fd9c5189216197ce6ae75e74214bfb7f4144ab716384ea4d79952163405a86e730f614db433496e10081b5c15a625bbf6a905318833648cb6a9d1b368fd809ce1dc59af3dbd62fba26ca72f3a230a57e45e768e84d6e64b6efdfac94a0594c866136c628e17829a1ecebe005ebdcb9c3552927d532f589cc3dc0976c2212284f7f508deddf9d28a136147505e8d8b31277382ccee2b0f4682e104f9abdd83e93031c720be9824ab31ec67dee31bf3b39526a98f908aaef075f00566c7b3fa3c346d463935067941d934c510ae0cb46125a0ac818ec0e27d47c5f16d09e4dc39e211c69d865d3a70456d8feaf3110f9d9c3be0fdee138d47d4c942ba65745bd50ec4ac40d9bb15eec15adfec828aa69a592d977e139792490ae3509514e98362a8251e8a93cd37c5a13d16447b1c8c135d1634a22d2ccf812174221f32d43cb705d2a5fea1b7450c0edfd80b2b4bb11a95993e0f9f09f17ba71479bf6baee1c32c3a42b8e24e09d3589dad307fcae210377dc102b56ec8dcec7129a57e57ff7d2d0db4c0460e75a223fa039c4a304a46518977f81246b5caa2984751f06d2464f40a2a015a6df9d772a0dcbe7eae51f567ab66f6d255db24b08e030fbc41e296b0be53a5e1311d0df3590f3c7f2dd16c451d4af2caa3bffc4a4befc2a62d324174264d87ee6d55275cb18dd7cef240d6d19eeb7c33d569b66a0e3a52e83ad90f8c26fe8f723596360f4718c8b562e2daededc62b1594d8bf02d8110926e62c9e88088594cbddcd65dfcd6efe951a5bd151013c70885c3aea8a5e9fdb7cf33969557ae1e03fbe2e2283c3ffab2a7d1b10412d7954d798d96e72cb5d7531a662478118eb3a22df5f4a8de127ab1a5a1d60d7dc7bb6c5d02b53d52dd819191bcba7a783414f1738a6e09cb1066d6a1683d457737e52d7dce2452eb04e54eb975ff1ca61c7a1de19d5e3bd090d8ef74764b6a79664c4acb2c5355abe83f9d59593ab4aafd1270911705142ba9ba62648d8d615e392d3225f21d0d51b12a014fee1fba74060ff906ee60b583ab823e0636bbdc3e63f316110c580f7d730579714922412c3387c29d693ada8fd065f6f6d09e7524e4dff40aa213490d66601b1df32e271f32004bc8e7d4885da9fd403fbdf3c334cd209e0f1aa0299a31d702440119fe5d783c5ecb63a9778758cd5b1a4542629a250c46dffe85a9b7618df27dad38cd0ebfe63f9e904b4f77f9390ac0c7f1fe3e5ec0cb36aefc49bc907393261283ced4212bb22bd7b0b614728df23e28c6e904d0e2132bdad2d6b620184afe5a56c7d661d5d9d2ed0a9f48ed97811d4110a844f8dcdf1b36ae4459c2ffaf2987acb4a6b1ed987ee5987ec273e2157d714e66f4458ffe72d31a9ff0f78cbd5c05f0705dde92d7cbee4c2cade035a641f203d7614f884c5d58f9c340ddc086694376965082d1f334fc76ba83410d080ee05e0a4fff427360672f5962d2727e87a34f4e4bc2308c0b8f09eb2ee1f95662c31f0ceb86d384ab4fd0279e534d90957bbf5738c72b48b7994ecc46ddfe234fe01dbb02a0bfbe44403f370dad29b489e09b251cc6ac9db4a5e16e5ae491e29c56774248467f0cbf7c5c11f11086b63d34a26a872a2be53af6d6cb86fd4340a31d14e6e97aff2cb90e91d8aa3b7a0b6b6429e0cf67701eef5e52890370527679790f439f7b94ad480b3d689a7a20d7de0b899e35ce6594a665b41e3e7b95f1766dae3909f616124ca5f5ad96d302f21262d546c4bff836d1877665ed5f4a28bc804dcbcbfa36433100cb4a8d15d1350c04d8751601947a8e37aff3ed462b621d4077f8b7f2f0426f661393dd47d34410a6d60cda1968e00500eabb7baf609ed366041c63f336dc0ce985bdfbca26b671b70c442517c3dad0d89554768d2469d4a10f29b9bc2edbe258c8900efb49ab50838ab37a0678430eec9fb42b810d02f91c440e650bf45569d6db2ceb0fb4b58573fc757dacfeaa2bd114de434b5a7b2b999107be69afcb06515744ee4d6312410230cc8248be46d568eaa8fb5bd6ca9552030e3fcaa01e4fdaa39e6850d312372a48528da9af38cdcaabc7ce0c0b4a3087682e31fd4894ecade7928d53d2ea9994b97c056fd77c4de954ac0cfb8b150771267da25d6c1512770deb003495166662ddb272ee0dddab4c33a3f90446667574912dafefebe7e4d581a8bccb68598c22af5f8a6b46b37b4339c37b93aadf5abbf390353359cda28bd2f56228d6a6bb84c621b5300ad023422476c80a3e32db34f2aa9568e1da221b386d22b540dba3f9637e305fdd849149973efb0a1678ed2de74e04278366fecf594e8363f9c00ef55e8145fb8547143c05a62310e6ea89141727e85149ce10a277e9db0358ab59f89c863f542251f3687fb9dbb190bc9d68e90015c1f7255b51f9b9e87ca8873b228f037009bee2538d6860a4a4308eb1d8ef953d58fb3c678aefb170005c8b6c6c36ad44be48ac021d30da6d8b048e04054a605de524b42c4df2ff7cde08eea9d7d6470da7e0da5a279e68761804121dbeabdeb80ac3158e13032aadf0ea15c8e3837484f777487d798c0c3664d5c398aec9f192a533abf3cf50d50a3f72260c3164a91cca259dc09f7fe7a6d2ee7780c222292d23acc4983c2ccd7396b35b8dfd7c20a8d93ad23f3ff1431f082226a5e4da6549cb84e39a1c390bf35817dd60313f9f8ae91dc03e45542924aa494f51842a363eccedd4f47d3fd8574eacf413042fe65cc36a0a5a903d32e25cd4951d043f7f70bde0e1991d43fe2394b2637d7487d10006381f0743b7a0d8325a89e449e0964789ea0124aace87429e0857097ffe33e6ecd31191c38a79c4ea079871fad560732306f70ee204416f171fff96d2523df3ee9eb38e77f62b0bcc2e7434acce281731205b7ae68e4ee2a999fb35cf51886507e776425dff8c0e7ab24bf93214509b6e672a79ad6a8bae11f66440439f9b26773ad376bf211bab4697aa64223241db05714847a0a6ac7172628454b9b0cbd93dc1b7edc5506a2a33cfc0d01e834dd8bf13c1ac98705121997b2ae64aa00d7e696de5f293bb2c47375c5dcb845366879ab4b2e6e11b3e67d30c93bca5f8f57ff2066a425733f75e2e88a056b154ee8912dae64b7471ca997e356bb11ffa4f72ea12869d1afc45f0c5f3817107597ca044072e804f7adccc11d87288639c132e6a0bd4210e519260306cb824e145e480a451d77083732afa27e1a355bb2a4396fb48c9682fd0a2623c8b72342fdf9b9fd74f3de2749c4dcf68447bf7815236908f9d7933cea31347fb054987b8e314a4c4a27b4977f3ae986f1e0903979b71b30cc76124c756452779ca83cb35ce2b3e892ca13bdcc643f4a5239e5a40ecd4b317e4153bbdb930de697df5396d244925db9f9b8d2d786eb64ea4d202e08e2d74676f6997a591b504d7b69d1db38078ed0c175d3212f7bc00de3fdaec24702581148bab1eeb70facf140422c874426590a403725dec9cd9c953879db8e786fafa2fd5dfdfaf870cac72ee16603e6f2e5496436faf0ce11c32aaee6ff56a17bd0a5387f654f2146d2714c46eb7461eeb8ba87979f42d116719c0f8a0be632acb11a02ca9324cf38c739986595e70ec8571762c64bce0d307e1aee69fa0cdf8702c3f8a6aaa539dccb5dd73d0856f640e9c5bf3292a9398f771bc72990afab17c8ad292eb92d25db83094f2c2afa0a34c100b960811d2ed317bd74d999e4c4d002b25aacf1ddf2bfbad7da4b2b78653f637bbdfa7f57a809c3c6775244393ee8353c9174d96836cd4453dd1105ee55f867f229a1951d6f8bb8c9d2408972d1360de61776082d67e1cd164c01e17e75ee573c77782d70e17389a89e9a7be6784d8446e1794af1321df35a15a41005c0e34821ab8246f5e130e7874d95bd5f691c2a01c82be9515389781c04e7771b3c663d0fa548c48393616485399e631a9f6a04b9259c162b2b3ba3f8e89a69cd72c70844d41805c75fb33bb9bf0e54d6b7944ddf672a0f4e41287f54f972bc16168ab88a35b1e889926addfcfb11d4e39baa0ce8f8c501d2b314cf0ed522c16de7243a57b3463c497862117bed0dd98e44e1a730997190314ef821f74b487d3a59d75ff778ca8c407fa8b78fbe2bfcbbedb3b75f97544d090f4230af65d4e55f54801263eeb75527dc0c74ec649d7c766001348e0523622921997daf61c45a38dbc3cdc81a7b43a237eeeeb5fdc90c6ad4d18e5bc2c6cdd45db38302e67445aea72521d356eeb8179157ad14daea82d2d6592b25fa1c5591374ca33c5241f456b60882f409ee12e98b5b809fa2c76edd76d25c90f98cc769b5a60299f3fdf9b5edd68ec1a06a73282a5589302c7ae63f84bd52dac46c10aad1969d24c0bafe5a4b6b179d79985d5280a484c8a7cbddd56416e348784de931f9a869a3109f87e3e4415971e800e7cc64f5bcdbf8fbb29a954a8f4f95840d964eed534ff2826b30e9ea5694a70737231ea19a445dd9b5362c5a539de90930455078d5975f3fd88eac1caa2be29ebe947e4ebe182acafacb88d20934673f52a3620e4d2661e1dbec3678ed21fdadfc6e87aaa27401ae59c9f9fec75f2927beb0d62ad71d9a26fd75198e010c38925ef5220a07ff487272e2d2db5f4bf054d79531f6912566703e0be26deb750d6be571981bb9d3225d96c5400f9bc7c7071194b7b986a35675ce8dbfca8a82d0c07e87b06d99bd2aa12c05791df361b4e99d948bbf5da5abf8af5710342346a200ef3da62810deb3d969d49cf93fb98b52908239e15062c722546707f6fe6bae62b942825ce895097faa250df209f277d798bbebd887fa391c605d5441a51aad8d27451f07e45fb7bfa8db085b0cfa850838acfb3e5f5d8f56c135ccc09fa0f990fd51f9da3d377c36c6ba41c9bff461a324d8c474337cb43faad8db01fefd41b029abc2d662c2cb8846e0af6e5930693ab10533caa86cfcebd95dabb8ecab378ef57c1f7c68a16078afa05fef7f9fac1b2f2cb23e31e81dc325c07fb9dbeeb8d95d5d87e4e00dfa8d27742d0fda44b3dd7ebfe1f76fad41ec8733a2b144be4ec727c7bc1eae0c274a22d77b84a472f293f6ffc0746be23d338d25ee07cb44d24cda490f6192ab996f2f0949b0a2966029674948ed25723416e9f65a7ea76de0d79afc08ba3aab5ff611a7f3d3cba5dc861878adf0866bcd04cf1c4dfcecbbf7c7491162cfa8fd394da829ca46072a8287452f05de1a23a6ebc70a59e4e717842f37074107ab90347a5e3c561445eb18bbf01afc0b3a33cb5d0857b7639bfd920d61ae46371abe2323a75c7ab8dcb48451be923adf5d992895cb92e1c527acaad050a76a2271e92875a8ca4a8ea41ee9fdd0348b2a3f7c8bab0259ce9bef22226865ddccc83c5892ba54349417ccb0c31878a14ee3f14238d53d3386a5adbbc48e10f8298d1fe8bf6831d7f8a9e902d78061b0b0a848947ad17e913e5bd292c5b5f90538094af8e4895147b5ff37e2472229d1364b8f37d8717c78d9eb40547775878a193fc3a98549f72daf88c4a392942d12dba9d1246785fa8fab127518d1dd4cd29183a03f8e39e7dcf29ab257e6168eb66500f03af81c6902e783d9e2dff70f879afb29132497abe9225d29dce9f43529f695899039be0e708339b7d8e7288cebf4c06c209af66f4795f644146f3293eb50174faad8c77e05a9b38f4b3a4fbe0452b5f3c8f9639e10480f5ecf0b3d7619b9ecc6dd55eab65c9196904dc3acdae03f551e5c0c2913d19cf2eab892d6451c104fd9550a35f07274920c617995ba0afbc5e64ed4e2209b4985283c3ff77671c01b6428180d81ab6cf79bf12122a04a960db08320c1cf959d3a86269596acdd1ca9288b25817808ed2a199bb69433a63fcbb0514ad5c5f5d29cc7ebcf6107df848a072c513cb8dbaab311d66b34d32123d86784e0f9559bc03e176c9778efa67f7a6d943c666c8415aaf276fe3939f661ecc9e61e0bd13a95fed2c4b47f9f876bf03f1e2acc7baa804d328fd969d70abd21a05987bafa346fd133f5f0d4fa59d319c2edff7c58a65d0ef7f43ea9b0d0d128f4b6ec8ae2daa5ea982d271a78e26e83efa382b2e7d7fcda1089015da5a98b112861dede51dded54286f711e0e778bc5459ad39ecb38692e75c3142c96a47c5328121d32e5b1895fb26e2f75f6fa780284aca847ec8d5e539cef80578b0a088375463bb6faa2a16105daf4e0e222a3bc735790be7a23729f7f59a33fdd867551eddcd44f4a3486e824caa8c779239b4278e577c9fb72389e64fa087c63b3edcfe3e30c2a67a2943761feb01b36d43eaceac88f6baba8c87eb6526e0c56534f453cadfdbb46bf451577291c9f80afd1b2ef39b18e25657c9d97cd553963a78834ee33f8c8a9c2c636d16dbef0aae62404369c3235b9b0fe2f6fe5f27f051720cd3e9e342b6769fa4d84dcfcba2d03af1f02816a0951f2104b81550cf971b01506c3e2a765799792807a3a5e06ad0a5720ed5ba19fb285ffac637fd4e6e5a267fa2938fb6474e7392e29b059a121dd6564294f1b5339379de45498042504945e1c73735d9365c4a697d0f161ab502f906d00b1ce5f8523a0f9a759c22e42376b1ed60164a5c2d79774d4a2d7428095da5811af348977fa07f52b0a58796c654ecffa7fe64c5a128008d8e9d5d2d9934ddea5bd18e73567ad9ef70262bfc47e70ce6f718065dfebabc507b02dccdada7637fa032ef5bf7947e83c4f8cba90f122267e73e9b627729a30dfc5ec5e3b2fbfbe40ec9e5fb14b1261b3abb7eec9e2edc000f465eb6c8ea6d62978c602a054444fb04a3a8efd5d90efca70a4e8ec36c282c24e3bf959a57abfce54a92e5dd2580d3e2193fde61cf78fbba2aae3ebd5066969115975d47b999c960c9753cf467265bf468b4bd0141ddf7c9e184b3a061f0481acba151273b7eb743d6b6471d2854bfb5f7e726608640a42c446c55dda25a79147edb62d5f107c275b2a431a1a61c6573b1526430c91bf266f2ce8ef75cf90653526866785530b13f18bf025972d71d3deff1e3451108691469da1729b1dbae706d68d3481c2a27b158c61c5af5007302d667c15eda580d89201d632ebeff3ff0416193872d9a6a7e63fd0c8420e503f2aacaae91a5b553e198da712ef553c366a93149988324c58b9ac736c50a33b731373b43e30afe7d6094937553c9977f17602067ef0224a147f52feedf0ffb99c073ba9f97c3a12a2df47bed35246a6a4064b2e47b573fdce89554657b2e4072b75d40639aef00ab073d880c2dcae1bc6dead172810334a55f1eaed45e35b36c02cb02d3b7048396d233ddd292617ddabb0846439505169c7155d199f47f1571a7242e4539123d4e6a69f841508f3cc690353329af14cfd35de14ab2dd4b8b70ccebf75e5ae8a3be93add2c37af9266fd06c49364df3225028e09b1bc6e477dc7859151b5cf59fff4f0a92d1f079758bccd56d09ef69b3420f1e4b2b3021a452d4a9c2301c3c220d88f2c493984fdf7b8765dd77991bf1629d461ecd9dbd47475753b3a9f859ee983343031fbb69cd1fad3f6e96e4ca8999ef693199e22079f2f8606e7f04b1b49824ca3a3bcc8806914f4ffa22665ad7ca468171c5366c48f4e24ce82ebce629931fefac506c9fe628784cecf98dfcbbe39c736fc1b248b3f281c7103b8cfa95602a6631ed60cc21229e0c9a99cee9f21f56026708266edf3516f27bc81bf485ff97481d26ac1eebfa2902cb5f5a00cb23a6700ba66323ad341da1fdec20d53299a6947f957041f4b8a80d1fde27853239044145ecefec03f2aaf9ed6e6e0fdcc7f5be6a175294ca4e1658712c3a874cf2595dc7ef238e6148b370db7103aadfb91271b51f095bbe8d873235ea0ad81aa1e794b9b85863d6b3052c0ff2f3c39d6e15213d948a686cd4e29b1f03ca553cb8ad4fc6a87cc1d4e0788427dd1f7f284a94b79e580c57d4f71c423fd439dffc184c5d22103b071217d9b8dcbf9bf694072c969b7b9241418b1b4a19a495183c9caf5a43d8c9ead80ebb8aeef61183f899968f521e81ea4b279570d1635773bb2dad1fbaa29da0f26bf32bbef624e9acb9f86dcda05a518c8ce50359d189c1adad579b193e1c4611697df78bfe317cc8b62b74a899ae99cfea9d810942eca46bb379b6d717085e907fa0f3bd21616ba0b3804b4a47645b213d2f620fa46b6a30701d3733dc46c7138a6f98bcd365e40452c683db60d6f188897aab579e33b50a3bc2ccfe5d0fe8f137da753affd0d96f785c426e9e77c0586123980d61cf2c5416c2faee98ce4a48ac3de19e8439109ef0067ddb8a271299625102a0faed22503e508aaef1661b470c2ec71eecb5ae11b8569f30297f1e1084a43cd2f795c3c6f345971dcd1eb51b32e20226a09631212e1d1d6c4ea0761970d752d64df3b264b1a188ced920772c39c029c5036bdf3dec13a5100dcc05d525f7e61067abd118db670e6657b0752a5dd3ec0e144b578c12dfc11bf670be352ad2fb81efef71b94be790bc4ea1d834b219ef44bbfab9dc626661eb0028681b41e48450d3e05dc7f86e20ece71efe90e916b32354486eb6772ba2615750e44d99acd470e163362cb160b342457e74fdbde64550038db17e451e59b4d38cf2f46fdfc36d69eb0fb270acc5ba2c1ebfa388e0b362e3a8e672ebf46d2a83f37b1d2035aa36302a6cb6ea96499ee3faf4ad9b07969882b962e94e071862751922cf801d2320630311ff95080f92b4b87404cc130346f082ad6c16f26076ac85fabab1d6e7aab34b78f58eed2d684630f8679cef90f56b90638e439bde1df3538dfb01835a13551cdd4d065bce764be74bb8e69e2b9c35356e7fab9299036ced6013ed219497cc91d664df82e2e9cc216e09be25ddfc3578d53e80d9403bf57033bcb1346ad16962d68eac460c04ac3850d194fcdf2b802cc2a9fea61300205a0afa476c09f78d90483a3dd1bc2028b92f6af015ab97aa57a31b84e73431bcab76b99f4cf345df705387ab6cd615309c8d6a2d4a4cd6f0df4f77490183072c3b1b90edc2de110d6ef957a5d51047da1201895a73c5cd6d5927494e9aa0fe73fd2720f916d52da8ea76355280f85c9d65955a34aa03023b5c26b2e06682dbdb8fe4266100e022f85a9284b65c076c44dc7dc22d7e0f6a92b519cc949be76a16425ff83cbe27130b8fb05f46172d5bbafd798ad5e329ad0fdeaab0e51f0d5768ac22a068283b992bf04ab69a8096ebb4a4d4c4ffc02df19b251618ef958dd2e83f3e93b11779d526e3bb73f6687c22a950f4169d674c741f994c42803d5dced81a41903af0865f66d8f887d3021a0af962c061dd3acb96cd2fca23893c012a5984d676d5ae86a786aad2fb413ad65763978d1d64d0476ab81184bec4a027641e33f90f363318ab6075cdf51468fbd1c34ad2a0426444df97dad20c71ffb6383fb69f1d72ab9b22cb552ec482387bab61a0962413c55f1f9b6918083416eedaf23e45cc17b399cbd651b3d13360df522ffd8d4207914a34a6d550fb29a2f58bcf6adc53a2509a81a4f6609a8f8ca117073d53ac39a9e1acee8aa2e6f1e29e5f3e3d70e4fc55783cfbd67a9aa95c5884f7cd32b85db39a1e415a05b141495814adab4473e4220ca1a838ab02bcfb02fec6cc0ef4274dd067247c04908d8a0700e5a3079a9a19c0c4db90420b072e2176621f66f4caccf7b458cd860d34d01f211e046d51a165af3d749c7e9996faf45935d329f29c41a5b106ce51e31cba73f42f2d59d288540891d3918764753acb8cbdf6121b4df618dafd6f69490de8baad3b30e020b6cf139b83b756379ff1a4b76798d5c9ce0497be9377b05c1eeb8cc71df58d65efbf8bb7850c6b567b4fc9acf822ac6d48ea98445dbf13ef7785664cbefd416dfa106130386d3e8d2aa0b67a7e2e4b18c5f3f1c136706818463c0fa429cedf2970207bbb22e7c7ae8eb34fdb841c13803f215cd97c7fc4074fb08439b6f6ac1eb5336632257462198fa0d0ab4ad5a4e90e3f71f7e57739d96b13d36fe765fa23307d49659106f5cd7f208ad6c70015fbf9364381c59c090fa8fc04e39ffe6fabb772e4d37d57cc97aa9938f4c63a2be9185810b99169becd4a979bcbd2b3d7da6a1f1f94c6f38b32ca61b34d4db9947d6c4eaa5d64deae6d242e8df6bed75163f06e06f806e857adc6c036c7bca3542280196e94e6f5c6c7efef7a86f283407c9dee5fe8d737aac0371f194e90d0151f56d653d391776c042d67cfe4ce23ba4ab0e62ae56f105118300c1ebfbd09a133ce4e057d62ca7cc1182ef021a7094f641418583a42826a14fb2c79859391c4131829322ca6ab128d03a80995622f8bae9be9455223774372f051195ccd7d7c112931e751b1fc6ffceb9e10114b9a42c4dd807b604d31c0a252ecb81f256cfec3e7972ec924405daf32b5882c1776a4bda60df9cce92c6c8af10c98c4920367b7ef958e63c0e46149c7073f744e87f2f25e5ed77845c858c65d39cc0dfe54d34974102dabd3e2e5d6bbdc1a61ea2cae0975ee0acf15b1619d13f23f711261ff9ea434c34eeaa201f6ca00f8535cf7f048a30b281a5c0ef49974f058cb176e6dc2ef1c3d1ec3caafc722247c109c115ff2f14e67ecc1fd2a80559fe3a4814968d9bdcab9c27c0f04da6d39dc58b2dff9475d644652282d9364019e382cd9038f46028c96744ccc345743cffadbad33c9e33f4674f9a957ca6f5ccdc608ea79921abd1f5ca3dc8f3bf0ca3478d5afdd03d60f3e9927c456aeb424d336cbc87126c21892396072c504cf75a91684c94a7db8d36d0ab62e1ca5f63f305597fdea716bc47040308351ed07c2e26f7d14a983620d510b0d148c9b776fd9dfb168d2a5d13621fb708b16affc795b15e72ba80ed7e0806b8f8afe00b31c7a6bffd051a01e74fd53e595abfef11773aaa5ec212f7ac15abfcbac4a8a44fca596a7b80157813fa7a3baf04e1472b9f18115c303e5aeccbd325ef6a526ba8b12a02414a2d7b3d5fab651f15aadb7a595f2501768e21372f18b1f011e228d258a4d990f715e3168fc17f8243e6b7e6871ec8f8a75a28ac05a58c95296a1b13f45e3b81b7dfebec929e77d0b6ad8428c5cadacebb0b929ffaf54b5f866a7e8a036eb9e8a13ea882f0bff1d10a1808366cd58b7efbf55deccf17d2ff320b0b83c0392a9021975faf4ebee738c2a591d5108c2a5672b1300cd02f0fe78b45a0a6c69b59a411ce8aef2fbdc0fd75bca9385f779d6dda0fbcb7c11f3fc61d45579157634bd0fcb5b6312e7293879868306f6f14b04a4b5a36ff86c3d5e1277d04b69534aafbe8b727937ffc1cbe8e73fd074973f1af5d7c398ac31f5e82e540bf58e6cc91b9b419eda1cb3ae965d9495b9cb1705c6709d66ed7f0eb9e795ef32f42376ce007fa79cbff027557d89e6d22cf525e4b90cea87cee6bc37b2fb7cedb899b234b53497cc0d34a46f3bb95d8eb3dd097e40c476df853b0b8b8da97d840b9d9b3c4319899fb30bf17976cd9a1af176578449c8d63b1a6f3966c514f3b91eded79f478794adc74d746ff122ab412110e181e8285b9befe40fdf158f6956d0b5cd0d6ce1522da2549d49f00d519981a7ea9e24d6e1cbd0f0bbc7408f0578912be6aa0db2d12d281cff6ddc693d7a978c8c8b08419f3cd89517549698cc84448a307a32fd1110e43e1b58e00b1abcc334abafb7b27e2c3c4a1714b1cbc3b8a753dca9e87832b276e9ec3b0fb086ed5837c0dfb0ae61233a2bfeecbbebdd65bd068391cb9e5a6cef8c80f8b79ea8fa2fea0f772df2f1759bcf30b23b0640b231aa718c2c51958b64ddb3833abaa0f6c3f59a419c548a3a9aac4598193bd4db9d54fe90cd0cb4c0fc2dd4d6de1783e3379ab684b725fe5c24038f435b57c09cb821c52b2eb0e9edbc73381bfd30b258001ffe716c5feaa5b131a15dbffede74efe2a7142f01eeb1782f1fd99dc50ee0c2fb9e38a4bd7c8130089ef50c3e5dd08f9149f027b932f51ef0627b4d24d7f17d33e56e0aceb352db50bae53f9a57b282041a8e8b52c92f77c4e641396b8feea3821f41859bf3d8d55a4f2356f71fe07d533d30388eeefd57586c10d6876a4c281d188fd493f81e761a1d9297bbe4a34124cb5ca20c971bd76802c50cdc13fc69c3eef5751add3811684e15c2860c993f02af2baaada421680ada9c2445371a523cee63dda442aa8637f8abc9c866222fd991ec6f23d61520f0b7058822432a2ed624856d77c7d82607a62d1c37010206c6ccb1c523aa04b94c9e2b39800d8233c757b2e29b970cd45b015e868d9e19075e532ddcaa0e2e8228d9e735046ca796f13fa239e3e40623ddb4dcb72bd8c68547e3b153318ee067f4e8c5b16cb61f2df768abf32e572c733e8483059dbec26b082ca3186f980eef4b7776b8997825ab0d2b39397ca67b2eaba3d52ec128366ac59898d4195b9abcd26bf63435f7e16d1bec7fc724b0745e69a7949f80ec16ba92e3143668504f09a01ec0b6892d6c087113536c58a3d0ec79c8d41f9dc2e4155547845080de8f4ccbb981ee8123c0ecd09e8c50aab60101693a0c5b79a636fb0e126e3c72af5227a37d2f1c8eaa99f997dab4c6b574537a0924de975cb02cc8520bd34f1b1e4de74795930399993985a43e076f858d4f39ab85db8f66a06866cb54b2fcb557d1249ab7321848eb3ce28e454b258ec16d8c8b553e4362b3c4551bf7ba8b027406b06121a3d2cd83ba09b1f3fb70efe9852580d8ecb99bdd170e8d1272ef268808f7f3b367e4c91135e12756bb9852f8188c1c0e75c45b311e7cdb5b33b9afe95af5e66ab0a0c54ab65f228cb20879e603bf1220e4b96b33231edf0bab929770f053b7331741ba7881ddae6bd7c975f55362b8bcf27e0a7ff39b76bde793a7e0dccabef5df8666704b3702c005649df220b3729fce5deb2f0fe88d8d2cceed18a54d5d7a95433b16a0bd7db9c7b698aee041b0d8e34d39a244885ee811153d3ce2a50a37abe18b4f67bfe09c72a7a483f79e058ce39ab81218b887a02e5b558e5a3013e65cf165cc0227d2ec37177b0a699035c270836397c6fafcd1bd14c538b09b6695fa8a47dbe4a20ae0152fbea516239c4e8521e75373922b21bce9e88357cd8f232c6cb99482022d25eca6d2fbcac4cfe4c67e76fc57960491b32391d20700e5e233dc192c95b0553a578eff21d0fa70fb882fd1121067291bf612b9e8f4fe116ee6e87da947468de3b3a0e057dd6f3b59c1cc15691d0a4e012217412fb8286b326176114e122169e056f387aafe1f370c69158a06a156f706eb0c49a0d38563f873c66afee850c34d47c8302ac838fb81357e2e58b47ea9a8eb4219c3bdcdbf1c5fac4b86c0f93c97513186ca28e394d40c57c587218dfdc22f0e798f8ba45faca21b3fdcd6891df888170ff5c2db2a303addff58a8a9b073638f6beecbf995a11de991469d852d9bfb3b162aeb254cf512a77fee2c2ca3d6240ae28becd6b90f66118be4dafb22575be9bc490fe34c664b526ea3e9e40b66829835243206614124ff1510adb11936de11013d9dab8e0aec5db4d35b180eacf04d1492f3847166c8497601517a7d6adaf582c1d25c4ac78fcf1832b12dc01952e3e50d68a99b8e45f738f557be6edda9b7f863f9c02f7ba3588d457035aade02e24ecf605d73dd3f765bedc03e88cadcd4a2945f41bd06139246604d1c2923fd6fe290ca7106f5770ee546b70ea026376c8eef042b7b457c9c60b6423d25fde131a7ce5264edcbc13645477fa038e609e4fc95fa7fed7255fa82267a925b642f9e37ec342f536c097a528a405530352e13895efbd9b4a5a631e0045d90da862058f19a9a6935d0b001ce83aa19c0c9e8705ec79b642173bf74762fd949053e6c774792ee39e72aa8bb60b8542c9928dc2c1f21a7b15ebb230fedeb6c3dfee3f4b89967a0bb685f70c58923aa05381754ccf5dfacf3adccc1192868c1527529ecabe2fcf93adf02e8ccf91b9d0480ba00fdfbcc19cc60ed55a59cb5ebd1f3d593114216292b5d09a48c908cb22323ea110b33c158c7f0debfc7dbfb8f519a87d86a6ab5729cbe3720afb81297dbdebbd397d4cfdb182b39abbc99df45ef1607fb4be865deaf1dd170e524c6726f4b1aa8a8d1e4b9413a3f9e1a1ea1b8111c6544d6ee7132750fd268a993c93a7c61cdf04bab75c872fc984ae9468481e6b51dc98a5a66c59438e1459bd00092bdc38399d72d0c9c8c63c85ecc61b1b09c6f5a449c39c5302c4e0343fea4068da0934eb5557840b7fcaa2149af29b903e0606a96cfe00252300689835afdc03d1b5321af2a2271bc0115851f3acca90d6aede4874e506b53425155b80956b0ec066395d3e853cd7fa3084a7671727a1455124eeed057ebf5c7fdfce27448db1b6e9ef8f6391a77aba898e71c52f6b95b60afc019f114fb4623669fc5159e0adf397d3f8eb1004ee4e2b8d5482d58adf496594bc8f0472d27e7687705a143d4ae6378c2992a624710fe78cef5de98482c9592deb0ad76eeb3ed1c87b9c7b57b832fa9fbd0ff16d2f186189c3ab07d6df750e89ff45ee3fbc5c3e016647f987a3d5ce744700d71794601c4813d0bffada88dc7b79f070a42bdc6cf9e56adb21a04a93f8afab8ec3fb9367c7afd1dcb020b8914f300ea087f00c140a70cb6bdaf57abfdc8921320fa9ff53f8c12d06c2dc71c8d06fb90e8d6d88f10b0eaa75617f0fe97a5d858509c7ab744672bf929061a28060c2d940b40c3209c2bcba184429ab79a223d85320e5ecfbd9ac9742a3a5425e26298c717b6923bb1a63a90b290dcc0e727a959ceabb813ed7869eb3ee455cfc075befdfe76feb4069744f6ae63ab97ad6af2dc546b62c1e791720d555f9865d7c1ff363c7ec5bbb91381d6c8036cab</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">您好，这里需要密码。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/blog/lib/hbe.js"></script><link href="/blog/css/hbe.style.css" rel="stylesheet" type="text/css">
      </section>

      
      
        <nav class="article-nav">
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/04/08/Nginx%E4%BE%8B%E5%AD%90/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">Nginx例子</h2>
        </a>
      
      <div class="card-text--row">Newer</div>
    </div>
  </article>
</div>
          
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/03/22/java%E6%89%B9%E9%87%8F%E6%8F%92%E5%85%A5SQL%E5%B7%A5%E5%85%B7/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">java批量插入SQL工具</h2>
        </a>
      
      <div class="card-text--row">Older</div>
    </div>
  </article>
</div>
          
        </nav>
      

      <section class="page-message-container layout-padding">
        


  
  

  
  


      </section>
    </div>
    <div class="widget-info">
      <section class="widget-author widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-body">
    
      <img src="/blog/icon.gif" class="soft-size--round soft-style--box" alt="QAQ">
    
    
      <h2>QAQ</h2>
    
    
      <p>贵在坚持</p>
    

    <div class="count-box">
      <div class="count-box--item">
        <svg class="icon icon-article" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M240.51564747 647.74217627h196.07203239c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806V165.10332731c0-33.18142087-30.16492806-60.32985613-60.32985612-60.32985611H245.04038668C225.43318342 104.7734712 210.35071939 119.85593522 210.35071939 139.46313845V617.57724821c0 16.59071043 13.57421762 30.16492806 30.16492808 30.16492806z m663.62841731-452.47392089v482.63884894c0 33.18142087-27.14843525 60.32985613-60.32985612 60.32985613H180.18579134c-33.18142087 0-60.32985613-27.14843525-60.32985612-60.32985613V195.26825538c-49.77213131 0-90.49478418 40.72265287-90.49478417 90.49478417v452.4739209c0 49.77213131 40.72265287 90.49478418 90.49478417 90.49478417h286.56681657c16.59071043 0 30.16492806 13.57421762 30.16492807 30.16492807s13.57421762 30.16492806 30.16492805 30.16492806h90.49478418c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806s13.57421762-30.16492806 30.16492807-30.16492807h286.56681657c49.77213131 0 90.49478418-40.72265287 90.49478417-90.49478417V285.76303955c0-49.77213131-40.72265287-90.49478418-90.49478417-90.49478417zM587.41232014 647.74217627h191.54729318c19.60720323 0 34.68966726-15.08246403 34.68966729-34.68966727V134.93839925c0-16.59071043-13.57421762-30.16492806-30.16492808-30.16492805H617.57724821c-30.16492806 0-60.32985613 27.14843525-60.32985612 60.32985611v452.4739209c0 16.59071043 13.57421762 30.16492806 30.16492805 30.16492806z" fill="currentColor"></path>
</svg>
        <span>22</span>
      </div>
      <div class="count-box--item">
        <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
        0
      </div>
      <div class="count-box--item">
        <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
        8
      </div>
    </div>
  </div>
</section>

      

      
<section class="widet-notice widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-notice" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M512 945.02305225v28.15620663a24.27259221 24.27259221 0 0 1-24.27259221 24.27259335H394.0352a48.54518557 48.54518557 0 0 1-41.74885888-23.78714112l-110.68302222-184.47170332a132.04290333 132.04290333 0 0 1-17.47626667-48.54518557h118.4502511a200.97706667 200.97706667 0 0 1 76.21594113 14.56355556l20.38897777 133.49925888a48.54518557 48.54518557 0 0 0 36.40888888 27.67075555l16.01991111 2.91271112a24.27259221 24.27259221 0 0 1 20.38897778 25.72894889zM997.45185223 463.45481443a194.18074112 194.18074112 0 0 1-38.8361489 116.50844445 24.75804445 24.75804445 0 0 1-36.4088889 0l-34.95253333-34.95253333a24.27259221 24.27259221 0 0 1-2.91271111-30.58346667 97.09036999 97.09036999 0 0 0 0-106.79940665 24.27259221 24.27259221 0 0 1 2.91271111-30.58346666l34.95253333-34.95253334a24.75804445 24.75804445 0 0 1 18.93262223-7.28177777 26.2144 26.2144 0 0 1 17.47626667 9.70903665A194.18074112 194.18074112 0 0 1 997.45185223 463.45481443z m-194.18074112-388.36148111v776.72296335a48.54518557 48.54518557 0 0 1-48.54518556 48.54518443h-28.64165888a48.54518557 48.54518557 0 0 1-33.98163001-14.07810332l-145.63555556-143.20829668A291.27111111 291.27111111 0 0 0 342.57730333 657.63555556H172.18370333a145.63555556 145.63555556 0 0 1-145.63555556-145.63555556v-97.09036999a145.63555556 145.63555556 0 0 1 145.63555556-145.63555556h170.3936a291.27111111 291.27111111 0 0 0 206.31703779-85.43952668l145.63555555-143.20829554a48.54518557 48.54518557 0 0 1 33.98162888-14.07810446H754.72592555a48.54518557 48.54518557 0 0 1 48.54518556 48.54518555z" fill="currentColor"></path>
</svg>
    <span>NOTICE</span>
  </div>
  <div class="widget-body">
    <p>flex-block主题部分重构，详情查看https://github.com/miiiku/flex-block</p>
  </div>
</section>


      <section class="widget-categorys widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
    <span>CATEGORYS</span>
  </div>
  <div class="widget-body">
    <ul class="categorys-list">
      
    </ul>
  </div>
</section>

      <section class="widget-tags widget-item  layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
    <span>TAGS</span>
  </div>
  <div class="widget-body">
    <div class="tags-cloud">
      <a href="/blog/tags/Activiti/" style="font-size: 13.33px;" class="tags-cloud-3">Activiti</a> <a href="/blog/tags/Nginx/" style="font-size: 10px;" class="tags-cloud-0">Nginx</a> <a href="/blog/tags/PG%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 13.33px;" class="tags-cloud-3">PG数据库</a> <a href="/blog/tags/goView/" style="font-size: 13.33px;" class="tags-cloud-3">goView</a> <a href="/blog/tags/java/" style="font-size: 20px;" class="tags-cloud-10">java</a> <a href="/blog/tags/vue/" style="font-size: 16.67px;" class="tags-cloud-7">vue</a> <a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/" style="font-size: 16.67px;" class="tags-cloud-7">导出Excel</a> <a href="/blog/tags/%E6%8A%A5%E9%94%99/" style="font-size: 10px;" class="tags-cloud-0">报错</a>
    </div>
  </div>
</section>
    </div>
  </article>
</div>

    <!-- footer container -->
<footer id="footer" class="footer">
  <div class="footer-container">
    
    <div class="social-icons">
      
        
      
        
      
        
      
        
          <a href="https://github.com/miiiku/" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-github" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M64.6 512c0 195.6 125.4 361.9 300.1 422.9 23.5 5.9 19.9-10.8 19.9-22.2v-77.6c-135.8 15.9-141.3-74-150.5-89-18.5-31.5-61.9-39.5-49-54.5 31-15.9 62.5 4 98.9 58 26.4 39.1 77.9 32.5 104.1 26 5.7-23.5 17.9-44.5 34.7-60.9-140.7-25.2-199.4-111.1-199.4-213.3 0-49.5 16.4-95.1 48.4-131.8-20.4-60.6 1.9-112.4 4.9-120.1 58.2-5.2 118.5 41.6 123.3 45.3 33.1-8.9 70.8-13.7 112.9-13.7 42.4 0 80.3 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.4-43.9 2.9 7.7 24.7 58.3 5.5 118.1 32.5 36.8 49 82.8 49 132.4 0 102.3-59 188.3-200.2 213.2 23.5 23.3 38.1 55.5 38.1 91.1v112.7c0.8 9 0 17.9 15.1 17.9C832.7 877 960.4 709.4 960.4 512.1c0-247.5-200.6-447.9-447.9-447.9C265 64.1 64.6 264.5 64.6 512z"></path>
</svg>
          </a>
        
      
        
          <a href="https://twitter.com/guanquanhong" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-twitter" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M962.285714 233.142857q-38.285714 56-92.571429 95.428571 0.571429 8 0.571429 24 0 74.285714-21.714286 148.285714t-66 142-105.428571 120.285714-147.428571 83.428571-184.571429 31.142857q-154.857143 0-283.428571-82.857143 20 2.285714 44.571429 2.285714 128.571429 0 229.142857-78.857143-60-1.142857-107.428571-36.857143t-65.142857-91.142857q18.857143 2.857143 34.857143 2.857143 24.571429 0 48.571429-6.285714-64-13.142857-106-63.714286t-42-117.428571l0-2.285714q38.857143 21.714286 83.428571 23.428571-37.714286-25.142857-60-65.714286t-22.285714-88q0-50.285714 25.142857-93.142857 69.142857 85.142857 168.285714 136.285714t212.285714 56.857143q-4.571429-21.714286-4.571429-42.285714 0-76.571429 54-130.571429t130.571429-54q80 0 134.857143 58.285714 62.285714-12 117.142857-44.571429-21.142857 65.714286-81.142857 101.714286 53.142857-5.714286 106.285714-28.571429z"></path>
</svg>
          </a>
        
      
    </div>
     
    <p>&copy; 2024 <a href="/" target="_blank">QAQ</a></p>

    

    <p>Powered by <a href="https://hexo.io" target="_blank" rel="noopener noreferrer">Hexo</a> Theme - <a href="https://github.com/miiiku/flex-block" target="_blank" rel="noopener noreferrer author">flex-block</a></p>

    <p>
      <a href="javascript:;" id="theme-light">🌞 浅色</a>
      <a href="javascript:;" id="theme-dark">🌛 深色</a>
      <a href="javascript:;" id="theme-auto">🤖️ 自动</a>
    </p>
  </div>
</footer>
  </div>

  <div class="back-to-top-fixed soft-size--round soft-style--box">
    <svg class="icon icon-back-to-top" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <path d="M725.333333 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8l-213.333333-213.333333c-17.066667-17.066667-17.066667-42.666667 0-59.733333s42.666667-17.066667 59.733333 0l213.333333 213.333333c17.066667 17.066667 17.066667 42.666667 0 59.733333C746.666667 422.4 738.133333 426.666667 725.333333 426.666667z"></path>
      <path d="M298.666667 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8-17.066667-17.066667-17.066667-42.666667 0-59.733333l213.333333-213.333333c17.066667-17.066667 42.666667-17.066667 59.733333 0s17.066667 42.666667 0 59.733333l-213.333333 213.333333C320 422.4 311.466667 426.666667 298.666667 426.666667z"></path>
      <path d="M512 896c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 682.666667C554.666667 878.933333 537.6 896 512 896z"></path>
    </svg>
  </div>

  
  <!-- aplayer -->


<!-- dplayer -->


<!-- copy button  -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>

<!-- https://clipboardjs.com/ -->


<script type="text/javascript">
	(function () {
		function getCodeType (elem) {
			const classs = Array.from(elem.classList.values());
			if (classs && classs.length > 1) {
				return classs[1];
			}
			return "plain";
		}

		window.addEventListener("DOMContentLoaded", () => {
			const copyBtnClass = "copy-btn";
			//  instantiate clipboardjs 
			const clipboard = new ClipboardJS('.' + copyBtnClass);

			clipboard.on('success', function (e) {
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);
				if (e.trigger) {
					e.trigger.classList.add("copied");
					setTimeout(() => {
						e.trigger.classList.remove("copied");
					}, 3000);
				}
				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});

			document.querySelectorAll('figure.highlight').forEach((elem) => {
				const codeContent = elem.querySelector("td.code");
				const copyButton = document.createElement('button');
				copyButton.setAttribute("class", copyBtnClass);
				copyButton.setAttribute("title", "Copy Code");
				copyButton.setAttribute("data-clipboard-text", codeContent.innerText);
				elem.insertBefore(copyButton, elem.children[0]);
			});
		})
	})();
</script>








  


  


  




<script src="/blog/js/script.js"></script>


  
  <!-- 尾部用户自定义相关内容 -->
</body>
</html>
